Part Number Hot Search : 
BFQ193 P6KE16C 2SD2152R RC144DPL KS8001S 29F010 HZZ00109 0BGXC
Product Description
Full Text Search
 

To Download L6470PD Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  this is information on a product in full production. december 2012 doc id16737 rev 5 1/70 70 l6470 dspin? fully integrated microstepping motor driver with motion engine and spi datasheet ? production data features operating voltage: 8 - 45 v 7.0 a out peak current (3.0 a r.m.s.) low r ds(on) power mosfets programmable speed profile and positioning programmable power mos slew rate up to 1/128 microstepping sensorless stall detection spi interface low quiescent and standby currents programmable non-dissipative overcurrent protection on high and low-side two-levels of overtemperature protection applications bipolar stepper motors description the l6470, realized in analog mixed signal technology, is an advanced fully integrated solution suitable for driving two-phase bipolar stepper motors with microstepping. it integrates a dual low r ds(on) dmos full-bridge with all of the power switches equipped with an accurate on- chip current sensing circuitry suitable for non- dissipative current control and overcurrent protection. thanks to a unique control system, a true 1/128 steps resolution is achieved. the digital control core can generate user defined motion profiles with acceleration, deceleration, speed or target position, easily programmed through a dedicated registers set. all commands and data registers, including those used to set analogue values (i.e. current control value, current protection trip point, deadtime, pwm frequency, etc.) are sent through a standard 5- mbit/s spi. a very rich set of protections (thermal, low bus voltage, overcurrent, motor stall) allows the design of a fully protected application, as required by the most demanding motor control applications. htssop28 powerso36 table 1. device summary order codes package packaging l6470h htssop28 tube l6470htr htssop28 tape and reel L6470PD powerso36 tube L6470PDtr powerso36 tape and reel www.st.com
contents l6470 2/70 doc id16737 rev 5 contents 1 block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2 electrical data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1 absolute maximum ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 recommended operating conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3 thermal data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3 electrical characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4 pin connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.1 pin list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5 typical applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6 functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.1 device power-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.2 logic i/o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.3 charge pump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.4 microstepping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.4.1 automatic full-step mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.5 absolute position counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.6 programmable speed profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.6.1 infinite acceleration/deceleration mode . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.7 motor control commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.7.1 constant speed commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.7.2 positioning commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6.7.3 motion commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6.7.4 stop commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6.7.5 step-clock mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6.7.6 gountil and releasesw commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6.8 internal oscillator and oscillator driver . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.8.1 internal oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.8.2 external clock source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
l6470 contents doc id16737 rev 5 3/70 6.9 overcurrent detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6.10 undervoltage lockout (uvlo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.11 thermal warning and thermal shutdown . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.12 reset and standby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.13 external switch (sw pin) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.14 programmable dmos slew rate, deadtime and blanking time . . . . . . . . . 31 6.15 integrated analog-to-digital converter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.16 internal voltage regulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.17 busy\sync pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.17.1 busy operation mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.17.2 sync operation mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.18 flag pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 7 phase current control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 7.1 pwm sinewave generators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 7.2 sensorless stall detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 7.3 low speed optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 7.4 bemf compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 7.5 motor supply voltage compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 7.6 winding resistance thermal drift compensation . . . . . . . . . . . . . . . . . . . . 37 8 serial interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 9 programming manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 9.1 registers and flags description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 9.1.1 abs_pos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 9.1.2 el_pos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 9.1.3 mark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 9.1.4 speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 9.1.5 acc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 9.1.6 dec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 9.1.7 max_speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 9.1.8 min_speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 9.1.9 fs_spd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 9.1.10 kval_hold, kval_run, kval_acc and kval_dec . . . . . . . . . . . . 44
contents l6470 4/70 doc id16737 rev 5 9.1.11 int_speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 9.1.12 st_slp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 9.1.13 fn_slp_acc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 9.1.14 fn_slp_dec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 9.1.15 k_therm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 9.1.16 adc_out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 9.1.17 ocd_th . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 9.1.18 stall_th . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 9.1.19 step_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 9.1.20 alarm_en . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 9.1.21 config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 9.1.22 status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 9.2 application commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 9.2.1 command management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 9.2.2 nop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 9.2.3 setparam (param, value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 9.2.4 getparam (param) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 9.2.5 run (dir, spd) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 9.2.6 stepclock (dir) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 9.2.7 move (dir, n_step) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 9.2.8 goto (abs_pos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 9.2.9 goto_dir (dir, abs_pos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 9.2.10 gountil (act, dir, spd) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 9.2.11 releasesw (act, dir) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 9.2.12 gohome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 9.2.13 gomark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 9.2.14 resetpos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 9.2.15 resetdevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 9.2.16 softstop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 9.2.17 hardstop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 9.2.18 softhiz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 9.2.19 hardhiz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 9.2.20 getstatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 10 package mechanical data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 11 revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
l6470 list of tables doc id16737 rev 5 5/70 list of tables table 1. device summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 table 2. absolute maximum ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 table 3. recommended operating conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 table 4. thermal data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 table 5. electrical characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 table 6. pin description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 table 7. typical application values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 table 8. cl values according to external oscillator frequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 table 9. register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 table 10. el_pos register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 table 11. min_speed register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 table 12. voltage amplitude regulation registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 table 13. winding resistance thermal drift compensation coefficient . . . . . . . . . . . . . . . . . . . . . . . . . 45 table 14. adc_out value and motor supply voltage compensation feature . . . . . . . . . . . . . . . . . . 46 table 15. overcurrent detection threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 table 16. stall detection threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 table 17. step_mode register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 table 18. step mode selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 table 19. sync output frequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 table 20. sync signal source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 table 21. alarm_en register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 table 22. config register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 table 23. oscillator management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 table 24. external switch hard stop interrupt mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 table 25. overcurrent event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 table 26. programmable power bridge output slew rate values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 table 27. motor supply voltage compensation enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 table 28. pwm frequency: integer division factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1 table 29. pwm frequency: multiplication factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 table 30. available pwm frequencies [khz]: 8-mhz oscillator frequency . . . . . . . . . . . . . . . . . . . . . 52 table 31. available pwm frequencies [khz]: 16-mhz oscillator frequency . . . . . . . . . . . . . . . . . . . . 52 table 32. available pwm frequencies [khz]: 24-mhz oscillator frequency . . . . . . . . . . . . . . . . . . . . 53 table 33. available pwm frequencies [khz]: 32-mhz oscillator frequency . . . . . . . . . . . . . . . . . . . . 53 table 34. status register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 table 35. status register dir bit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 table 36. status register mot_state bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 table 37. application commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 table 38. nop command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 table 39. setparam command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 table 40. getparam command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 table 41. run command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 table 42. stepclock command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 table 43. move command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 table 44. goto command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 table 45. goto_dir command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 table 46. gountil command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 table 47. releasesw command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1 table 48. gohome command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
list of tables l6470 6/70 doc id16737 rev 5 table 49. gomark command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 table 50. resetpos command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 table 51. resetdevice command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 table 52. softstop command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 table 53. hardstop command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 table 54. softhiz command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 table 55. hardhiz command structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 table 56. getstatus command structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 table 57. htssop28 mechanical data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 table 58. powerso36 mechanical data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 table 59. revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
l6470 list of figures doc id16737 rev 5 7/70 list of figures figure 1. block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 figure 2. htssop28 pin connection (top view) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 figure 3. powerso36 pin connection (top view) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 figure 4. bipolar stepper motor control application using l6470 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 figure 5. charge pump circuitry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 figure 6. normal mode and microstepping (128 microsteps) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 figure 7. automatic full-step switching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 figure 8. speed profile in infinite acceleration/deceleration mode . . . . . . . . . . . . . . . . . . . . . . . . . . 24 figure 9. constant speed command examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 figure 10. positioning command examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 figure 11. motion command examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 figure 12. oscin and oscout pin configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 figure 13. external switch connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 figure 14. internal 3 v linear regulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 figure 15. current distortion and compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 figure 16. bemf compensation curve. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 figure 17. motor supply voltage compensation circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 figure 18. spi timings diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 figure 19. daisy chain configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 figure 20. command with 3-byte argument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 figure 21. command with 3-byte response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 figure 22. command response aborted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 figure 23. htssop28 mechanical data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 figure 24. powerso36 drawings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
block diagram l6470 8/70 doc id16737 rev 5 1 block diagram figure 1. block diagram am02 3 77v1 3 v volt a ge reg. adc ext. o s c. driver & clock gen. 16mhz o s cill a tor ch a rge p u mp v dd s pi regi s ter s control logic c u rrent dac s & comp a r a tor s temper a t u re s en s ing c u rrent s en s ing s tby/r s t flag c s ck s do s di bu s y/ s ync s w s tck dgnd vdd o s cin o s cout adcin vreg cp vboot agnd pgnd pgnd v s a v s a out1a out2a v s b v s b out1b out2b h s a1 l s a1 h s a2 l s a2 h s b1 l s b1 h s b2 l s b2 h s a1 l s a1 h s a2 l s a2 h s b1 l s b1 h s b2 l s b2 v dd v b oot v b oot v b oot v b oot
l6470 electrical data doc id16737 rev 5 9/70 2 electrical data 2.1 absolute maximum ratings table 2. absolute maximum ratings symbol parameter test condition value unit v dd logic interface supply voltage 5.5 v v s motor supply voltage v sa = v sb = v s 48 v v gnd, diff differential voltage between agnd, pgnd and dgnd 0.3 v v boot bootstrap peak voltage 55 v v reg internal voltage regulator output pin and logic supply voltage 3.6 v v adcin integrated adc input voltage range (adcin pin) -0.3 to +3.6 v v osc oscin and oscout pin voltage range -0.3 to +3.6 v v out_diff differential voltage between v sa , out1 a , out2 a , pgnd and v sb , out1 b , out2 b , pgnd pins v sa = v sb = v s 48 v v logic logic inputs voltage range -0.3 to +5.5 v i out (1) r.m.s. output current 3 a i out_peak (1) pulsed output current t pulse < 1 ms 7 a t op operating junction temperature -40 to 150 c t s storage temperature range -55 to 150 c p tot total power dissipation (t a = 25 oc) (2) 5w 1. maximum output current limit is related to metal connection and bonding characteristics. actual limit must satisfy maximum thermal dissipation constraints. 2. htssop28 mounted on eval6470h.
electrical data l6470 10/70 doc id16737 rev 5 2.2 recommended operating conditions 2.3 thermal data table 3. recommended operating conditions symbol parameter test condition value unit v dd logic interface supply voltage 3.3 v logic outputs 3.3 v 5 v logic outputs 5 v s motor supply voltage v sa = v sb = v s 845v v out_diff differential voltage between v sa , out1 a , out2 a , pgnd and v sb , out1 b , out2 b , pgnd pins v sa = v sb = v s 45 v v reg,in logic supply voltage v reg voltage imposed by external source 3.2 3.3 v v adc integrated adc input voltage (adcin pin) 0v reg v table 4. thermal data symbol parameter package typ. unit r thja thermal resistance junction-ambient htssop28 (1) 1. htssop28 mounted on eval6470h rev 1.0 board: four-layer fr4 pcb with a dissipating copper surface of about 40 cm 2 on each layer and 15 via holes below the ic. 22 c/w powerso36 (2) 2. powerso36 mounted on evaL6470PD rev 1.0 board: four-layer fr4 pcb with a dissipating copper surface of about 40 cm 2 on each layer and 22 via holes below the ic. 12
l6470 electrical characteristics doc id16737 rev 5 11/70 3 electrical characteristics v sa = v sb = 36 v; v dd = 3.3 v; internal 3 v regulator; t j = 25 c, unless otherwise specified. table 5. electrical characteristics symbol parameter test condition min. typ. max. unit general v sthon v s uvlo turn-on threshold 7.5 8.2 8.9 v v sthoff v s uvlo turn-off threshold 6.6 7.2 7.8 v v sthhyst v s uvlo threshold hysteresis 0.7 1 1.3 v i q quiescent motor supply current internal oscillator selected; vreg = 3.3 v ext; cp floating 0.5 0.65 ma t j(wrn) thermal warning temperature 130 c t j(sd) thermal shutdown temperature 160 c charge pump v pump voltage swing for charge pump oscillator 10 v f pump,min minimum charge pump oscillator frequency (1) 660 khz f pump,max maximum charge pump oscillator frequency (1) 800 khz i boot average boot current f sw,a = f sw,b = 15.6 khz pow_sr = '10' 1.1 1.4 ma output dmos transistor r ds(on) high-side switch on-resistance t j = 25 c, i out = 3 a 0.37 t j = 125 c, (2) i out = 3 a 0.51 r ds(on) low-side switch on-resistance t j = 25 c, i out = 3 a 0.18 t j = 125 c, (2) i out = 3 a 0.23 i dss leakage current out = v s 3.1 ma out = gnd -0.3 t r rise time (3) pow_sr = '00', i out = +1 a 100 ns pow_sr = '00', i out = -1 a 80 pow_sr = '11', i out = 1 a 100 pow_sr = '10', i lout = 1 a 200 pow_sr = '01', i out = 1 a 300
electrical characteristics l6470 12/70 doc id16737 rev 5 t f fall time (3) pow_sr = '00'; i out = +1 a 90 ns pow_sr = '00'; i out = -1 a 110 pow_sr = '11', i out = 1 a 110 pow_sr = '10', i out = 1 a 260 pow_sr = '01', i load = 1 a 375 sr out_r output rising slew rate pow_sr = '00', i out = +1 a 285 v/s pow_sr = '00', i out = -1 a 360 pow_sr = '11', i out = 1 a 285 pow_sr = '10', i out = 1 a 150 pow_sr = '01', i out = 1 a 95 sr out_f output falling slew rate pow_sr = '00', i out = +1 a 320 v/s pow_sr = '00', i out = -1 a 260 pow_sr = '11', i out = 1 a 260 pow_sr = '10', i out = 1 a 110 pow_sr = '01', i out = 1 a 75 deadtime and blanking t dt deadtime (1) pow_sr = '00' 250 ns pow_sr = '11', f osc = 16 mhz 375 pow_sr = '10', f osc = 16 mhz 625 pow_sr = '01', f osc = 16 mhz 875 t blank blanking time (1) pow_sr = '00' 250 ns pow_sr = '11', f osc = 16 mhz 375 pow_sr = '10', f osc = 16 mhz 625 pow_sr = '01', f osc = 16 mhz 875 source-drain diodes v sd,hs high-side diode forward on voltage i out = 1 a 1 1.1 v v sd,ls low-side diode forward on voltage i out = 1 a 1 1.1 v t rrhs high-side diode reverse recovery time i out = 1 a 30 ns t rrls low-side diode reverse recovery time i out = 1 a 100 ns table 5. electrical characteristics (continued) symbol parameter test condition min. typ. max. unit
l6470 electrical characteristics doc id16737 rev 5 13/70 logic inputs and outputs v il low logic level input voltage 0.8 v v ih high logic level input voltage 2 v i ih high logic level input current (4) v in = 5 v 1 a i il low logic level input current (5) v in = 0 v -1 a v ol low logic level output voltage (6) v dd = 3.3 v, i ol = 4 ma 0.3 v v dd = 5 v, i ol = 4 ma 0.3 v oh high logic level output voltage v dd = 3.3 v, i oh = 4 ma 2.4 v v dd = 5 v, i oh = 4 ma 4.7 r pu r pd cs pull-up and stby pull-down resistors cs = gnd; stby/rst = 5 v 335 430 565 k i logic internal logic supply current 3.3 v v reg externally supplied, internal oscillator 3.7 4.3 ma i logic,stby standby mode internal logic supply current 3.3 v v reg externally supplied 22.5a f stck step-clock input frequency 2 mhz internal oscillator and external oscillator driver f osc,i internal oscillator frequency t j = 25 c, v reg = 3.3 v -3% 16 +3% mhz f osc,e programmable external oscillator frequency 8 32 mhz v oscouth oscout clock source high level voltage internal oscillator 3.3 v v reg externally supplied; i oscout = 4 ma 2.4 v v oscoutl oscout clock source low level voltage internal oscillator 3.3 v v reg externally supplied; i oscout = 4 ma 0.3 v t roscout t foscout oscout clock source rise and fall time internal oscillator 20 ns t extosc internal to external oscillator switching delay 3 ms t intosc external to internal oscillator switching delay 1.5 s spi f ck,max maximum spi clock frequency (7) 5mhz t rck t fck spi clock rise and fall time (7) c l = 30 pf 25 ns t hck t lck spi clock high and low time (7) 75 ns t setcs chip select setup time (7) 350 ns table 5. electrical characteristics (continued) symbol parameter test condition min. typ. max. unit
electrical characteristics l6470 14/70 doc id16737 rev 5 t holcs chip select hold time (7) 10 ns t discs deselect time (7) 800 ns t setsdi data input setup time (7) 25 ns t holsdi data input hold time (7) 20 ns t ensdo data output enable time (7) 38 ns t dissdo data output disable time (7) 47 ns t vsdo data output valid time (7) 57 ns t holsdo data output hold time (7) 37 ns switch input (sw) r pusw sw input pull-up resistance sw = gnd 60 85 110 k pwm modulators f pwm programmable pwm frequency (1) f osc = 16 mhz 2.8 62.5 khz f osc = 32 mhz 5.6 125 n pwm pwm resolution 8 bit stall detection i stall,max maximum programmable stall threshold stall_th = '1111111' 4 a i stall,min minimum programmable stall threshold stall_th = '0000000' 31.2 5 ma i stall,res programmable stall threshold resolution 31.2 5 ma overcurrent protection i ocd,max maximum programmable overcurrent detection threshold ocd_th = '1111' 6 a i ocd,min minimum programmable overcurrent detection threshold ocd_th = '0000' 0.37 5 a i ocd,res programmable overcurrent detection threshold resolution 0.37 5 a t ocd,flag ocd to flag signal delay time di out /dt = 350 a/s 650 1000 ns t ocd,sd ocd to shutdown delay time di out /dt = 350 a/s pow_sr = '10' 600 ns standby i qstby quiescent motor supply current in standby conditions v s = 8 v 26 34 a v s = 36 v 30 36 t stby,min minimum standby time 10 s t logicwu logic power-on and wake-up time 38 45 s table 5. electrical characteristics (continued) symbol parameter test condition min. typ. max. unit
l6470 electrical characteristics doc id16737 rev 5 15/70 t cpwu charge pump power-on and wake-up time power bridges disabled, c p = 10 nf, c boot = 220 nf 650 s internal voltage regulator v reg voltage regulator output voltage 2.9 3 3.2 v i reg voltage regulator output current 40 ma v reg, drop voltage regulator output voltage drop i reg = 40 ma 50 mv i reg,stby voltage regulator standby output current 10 ma integrated analog-to-digital converter n adc analog-to-digital converter resolution 5 bit v adc,ref analog-to-digital converter reference voltage v re g v f s analog-to-digital converter sampling frequency f pwm khz 1. accuracy depends on oscillator frequency accuracy. 2. tested at 25 c in a restricted range and guaranteed by characterization. 3. rise and fall time depends on motor supply voltage value. refer to sr out values in order to evaluate the actual rise and fall time. 4. not valid for stby/rst pin which has internal pull-down resistor. 5. not valid for sw and cs pins which have internal pull-up resistors. 6. flag , busy and sync open drain outputs included. 7. see figure 18 ? spi timings diagram for details. table 5. electrical characteristics (continued) symbol parameter test condition min. typ. max. unit
pin connection l6470 16/70 doc id16737 rev 5 4 pin connection figure 2. htssop28 pin connection (top view) figure 3. powerso36 pin connection (top view) /54! /54! 63! 34"9<234 37 !$#). 62%' /3#). /3 #/54 !'.$ #0 6"/ /4 0'.$ 63" /54" /54" 63" 6$$ 3$/ #+ 3$) $'.$ "539<39.# #3 &,!' 34#+ 0'.$ 63!                             %0!$ !-v                                         1(/% 065" 065" 74" 74" 45#:345 %*3 "%$*/ 04$*/ 04$065 065# "(/% $1 7#005 74# 74# 73&( 065# 065" 065" 74" 74" 45$, '-"( $4 #64:=4:/$ &1"% %(/% 4%* 065# $, 4%0 7%% 74# 74# 1(/% 065#
l6470 pin connection doc id16737 rev 5 17/70 4.1 pin list table 6. pin description no. name type function htssop powerso 17 24 vdd power logic outputs supply voltage (pull-up reference) 6 9 vreg power internal 3 v voltage regulator output and 3.3 v external logic supply 7 10 oscin analog input oscillator pin 1. to connect an external oscillator or clock source. if this pin is unused, it should be left floating. 8 11 oscout analog output oscillator pin 2. to connect an external oscillator. when the internal oscillator is used this pin can supply 2/4/8/16 mhz. if this pin is unused, it should be left floating. 10 13 cp output charge pump oscillator output 11 14 vboot supply voltage bootstrap voltage needed for driving the high-side power dmos of both bridges (a and b) 5 8 adcin analog input internal analog-to-digital converter input 2, 26 4, 5, 33, 34 vsa power supply full-bridge a power supply pin. it must be connected to vsb. 12, 16 15, 16, 22, 23 vsb power supply full-bridge b power supply pin. it must be connected to vsa. 27, 13 1, 19 pgnd ground power ground pin 1 2, 3 out1a power output full-bridge a output 1 28 35, 36 out2a power output full-bridge a output 2 14 17, 18 out1b power output full-bridge b output 1 15 20, 21 out2b power output full-bridge b output 2 9 12 agnd ground analog ground. 4 7 sw logical input external switch input pin. if not used the pin should be connected to vdd. 21 28 dgnd ground digital ground 22 29 busy \sync open drain output by default, this busy pin is forced low when the device is performing a command. otherwise the pin can be configured to generate a synchronization signal. 18 25 sdo logic output data output pin for serial interface 20 27 sdi logic input data input pin for serial interface 19 26 ck logic input serial interface clock 23 30 cs logic input chip select input pin for serial interface
pin connection l6470 18/70 doc id16737 rev 5 24 31 flag open drain output status flag pin. an internal open drain transistor can pull the pin to gnd when a programmed alarm condition occurs (step loss, ocd, thermal pre- warning or shutdown, uvlo, wrong command, non- performable command) 3 6 stby\rst logic input standby and reset pin. low logic level resets the logic and puts the device into standby mode. if not used, it should be connected to vdd. 25 32 stck logic input step-clock input epad epad exposed pad ground internally connected to pgnd, agnd and dgnd pins table 6. pin description (continued) no. name type function htssop powerso
l6470 typical applications doc id16737 rev 5 19/70 5 typical applications table 7. typical application values name value c vs 220 nf c vspol 100 f c reg 100 nf c regpol 47 f c dd 100 nf c ddpol 10 f d1 charge pump diodes c boot 220 nf c fly 10 nf r pu 39 k r sw 100 c sw 10 nf r a 2.7 k (vs = 36 v) r b 62 k (vs = 36 v)
typical applications l6470 20/70 doc id16737 rev 5 figure 4. bipolar stepper motor control application using l6470
l6470 functional description doc id16737 rev 5 21/70 6 functional description 6.1 device power-up at power-up end, the device state is the following: registers are set to default internal logic is driven by internal oscillator and a 2 mhz clock is provided by the oscout pin bridges are disabled (high z) uvlo bit in the status register is forced low (fail condition) flag output is forced low. during power-up, the device is under reset (all logic ios disabled and power bridges in high impedance state) until the following conditions are satisfied: v s is greater than v sthon v reg is greater than v regth = 2.8 v typical internal oscillator is operative. any motion command makes the device exit from high z state (hardstop and softstop included). 6.2 logic i/o pins cs , ck, sdi, stck, sw and stby \rst are ttl/cmos 3.3 v - 5 v compatible logic inputs. pin sdo is a ttl/cmos compatible logic output. vdd pin voltage sets the logic output pin voltage range; when it is connected to vreg or 3.3 v external supply voltage, the output is 3.3 v compatible. when vdd is connected to a 5 v supply voltage, sdo is 5 v compatible. vdd is not internally connected to v reg , an external connection is always needed. a 10 f capacitor should be connected to the vdd pin in order to obtain a proper operation. pins flag and busy \sync are open drain outputs. 6.3 charge pump to ensure the correct driving of the high-side integrated mosfets, a voltage higher than the motor power supply voltage needs to be applied to the vboot pin. the high-side gate driver supply voltage, v boot , is obtained through an oscillator and a few external components realizing a charge pump (see figure 5 ).
functional description l6470 22/70 doc id16737 rev 5 figure 5. charge pump circuitry 6.4 microstepping the driver is able to divide the single step into up to 128 microsteps. stepping mode can be programmed by the step_sel parameter in the step_mode register (see ta bl e 1 8 ). step mode can only be changed when bridges are disabled. every time the step mode is changed the electrical position (i.e. the point of microstepping sinewave that is generated) is reset to the first microstep and the absolute position counter value (see section 6.5 ) becomes meaningless. figure 6. normal mode and microstepping (128 microsteps) !-v 6 3 6 3 6 #0 6 $ 6 $ 6 #0 f 05-0 tohighside gatedrivers 6 3 6 #0 6 $ # "//4 # &,9 $ $ 6"//4 #0 6 $$ !-v step step step step step step 2eset position step step step step .ormaldriving -icrostepping 0(!3%!current 0(!3%"current 0(!3%!current 0(!3%"current microsteps  a steps  a steps  a steps  a steps 2eset position
l6470 functional description doc id16737 rev 5 23/70 6.4.1 automatic full-step mode when motor speed is greater than a programmable full-step speed threshold, the l6470 switches automatically to full-step mode (see figure 7 ); the driving mode returns to microstepping when motor speed decreases below the full-step speed threshold. the full- step speed threshold is set through the fs_spd register (see section 9.1.9 ). figure 7. automatic full-step switching 6.5 absolute position counter an internal 22-bit register (abs_pos) records the motor motion according to the selected step mode; the stored value unit is equal to the selected step mode (full, half, quarter, etc.). the position range is from -2 21 to +2 21 -1 ()steps (see section 9.1.1 ). 6.6 programmable speed profiles the user can easily program a customized speed profile defining independently acceleration, deceleration, maximum and minimum speed values by the acc, dec, max_speed and min_speed registers respectively (see section 9.1.5 , 9.1.6 , 9.1.7 and 9.1.8 ). when a command is sent to the device, the integrated logic generates the microstep frequency profile that performs a motor motion compliant to speed profile boundaries. all acceleration parameters are expressed in step/tick 2 and all speed parameters are expressed in step/tick; the unit of measurement does not depend on the selected step mode. acceleration and deceleration parameters range from 2 -40 to (2 12 -2) ? 2 -40 step/tick 2 (equivalent to 14.55 to 59590 step/s 2 ). the minimum speed parameter ranges from 0 to (2 12 - 1 ) ? 2 -24 step/tick (equivalent to 0 to 976.3 step/s). the maximum speed parameter ranges from 2 -18 to (2 10 -1) ? 2 -18 step/tick (equivalent to 15.25 to 15610 step/s). phase a phase b (2n+1) x /4 (2n+1) x /4 full-step stepping stepping i peak sin( /4 ) x i peak
functional description l6470 24/70 doc id16737 rev 5 6.6.1 infinite acceleration/deceleration mode when the acc register value is set to max. (0xfff), the system works in ?infinite acceleration mode?: acceleration and deceleration phases are totally skipped, as shown in figure 8 . it is not possible to skip the acceleration or deceleration phase independently. figure 8. speed profile in infinite acceleration/deceleration mode 6.7 motor control commands the l6470 can accept different types of commands: constant speed commands (run, gountil, releasesw) absolute positioning commands (goto, goto_dir, gohome, gomark) motion commands (move) stop commands (softstop, hardstop, softhiz, hardhiz). for detailed command descriptions refer to section 9.2 on page 55 . 6.7.1 constant speed commands a constant speed command produces a motion in order to reach and maintain a user- defined target speed starting from the programmed minimum speed (set in the min_speed register) and with the programmed acceleration/deceleration value (set in the acc and dec registers). a new constant speed command can be requested anytime. 30%%$ )nd exingmode #onstantspeedmode time 0rogrammednumberofmicrosteps time !-6 0rogrammed maximum speed
l6470 functional description doc id16737 rev 5 25/70 figure 9. constant speed command examples 6.7.2 positioning commands an absolute positioning command produces a motion in order to reach a user-defined position that is sent to the device together with the command. the position can be reached performing the minimum path (minimum physical distance) or forcing a direction (see figure 10 ). the performed motor motion is compliant to programmed speed profile boundaries (acceleration, deceleration, minimum and maximum speed). note that with some speed profiles or positioning commands, the deceleration phase can start before the maximum speed is reached. figure 10. positioning command examples 6.7.3 motion commands motion commands produce a motion in order to perform a user-defined number of microsteps in a user-defined direction that are sent to the device together with the command (see figure 11 ). !-v 30$ 30$ 30$ 30$ 2un30$ &7 time 3peed s tepfrequency 2un30$ &7 2un30$ &7 2un30$ "7 -inimum speed -inimum speed !-v &orward di rection             0resent position 4arget position 0resent position 4arget position 'o4o4argetpos 'o4o?$)24argetpos &7
functional description l6470 26/70 doc id16737 rev 5 the performed motor motion is compliant to programmed speed profile boundaries (acceleration, deceleration, minimum and maximum speed). note that with some speed profiles or motion commands, the deceleration phase can start before the maximum speed is reached. figure 11. motion command examples 6.7.4 stop commands a stop command forces the motor to stop. stop commands can be sent anytime. the softstop command causes the motor to decelerate with programmed deceleration value until the min_speed value is reached and then stops the motor keeping the rotor position (a holding torque is applied). the hardstop command stops the motor instantly, ignoring deceleration constraints and keeping the rotor position (a holding torque is applied). the softhiz command causes the motor to decelerate with programmed deceleration value until the min_speed value is reached and then forces the bridges in high impedance state (no holding torque is present). the hardhiz command instantly forces the bridges into high impedance state (no holding torque is present). 6.7.5 step-clock mode in step-clock mode the motor motion is defined by the step-clock signal applied to the stck pin. at each step-clock rising edge, the motor is moved one microstep in the programmed direction and the absolute position is consequently updated. when the system is in step-clock mode, the sck_mod flag in the status register is raised, the speed register is set to zero and motor status is considered stopped whatever the stck signal frequency (mot_status parameter in status register equal to ?00?). 6.7.6 gountil and releasesw commands in most applications the power-up position of the stepper motor is undefined, so an initialization algorithm driving the motor to a known position is necessary. the gountil and releasesw commands can be used in combination with external switch input (see section 6.13 ) to easily initialize the motor position. !-v programmed !##%,%2!4)/. 30%%$ programmed maximum speed programmed minimum speed time programmed $%#%,% 2!4)/. programmednumberofmicrosteps programmed !##%,%2!4)/. 30%%$ programmed maximum speed programmed minimum speed time programmed $%#%,% 2!4)/. programmednumberofmicrosteps .otewithsome !cceleration$ecelarationprofiles thep rogrammedmaximumspeed isne verreached
l6470 functional description doc id16737 rev 5 27/70 the gountil command makes the motor run at the constant target speed until the sw input is forced low (falling edge). when this event occurs, one of the following actions can be performed: the abs_pos register is set to zero (home position) and the motor decelerates to zero speed (as a softstop command) the abs_pos register value is stored in the mark register and the motor decelerates to zero speed (as a softstop command). if the sw_mode bit of the config register is set to ?0?, the motor does not decelerate but it immediately stops (as a hardstop command). the releasesw command makes the motor run at the programmed minimum speed until the sw input is forced high (rising edge). when this event occurs, one of the following actions can be performed: the abs_pos register is set to zero (home position) and the motor immediately stops (as a hardstop command) the abs_pos register value is stored in the mark register and the motor immediately stops (as a hardstop command). if the programmed minimum speed is less than 5 step/s, the motor is driven at 5 step/s. 6.8 internal oscillator and oscillator driver the control logic clock can be supplied by the internal 16-mhz oscillator, an external oscillator (crystal or ceramic resonator) or a direct clock signal. these working modes can be selected by ext_clk and osc_sel parameters in the config register (see ta bl e 2 3 ). at power-up the device starts using the internal oscillator and provides a 2-mhz clock signal on the oscout pin. attention: in any case, before changing clock source configuration, a hardware reset is mandatory. switching to different clock configurations during operation may cause unexpected behavior. 6.8.1 internal oscillator in this mode the internal oscillator is activated and oscin is unused. if the oscout clock source is enabled, the oscout pin provides a 2, 4, 8 or 16-mhz clock signal (according to osc_sel value); it is otherwise unused (see figure 12 ). 6.8.2 external clock source two types of external clock source can be selected: crystal/ceramic resonator or direct clock source. four programmable clock frequencies are available for each external clock source: 8, 16, 24 and 32 mhz. when an external crystal/resonator is selected, the oscin and oscout pins are used to drive the crystal/resonator (see figure 12 ). the crystal/resonator and load capacitors (c l )
functional description l6470 28/70 doc id16737 rev 5 must be placed as close as possible to the pins. refer to ta bl e 8 for the choice of load capacitor values according to the external oscillator frequency. if a direct clock source is used, it must be connected to the oscin pin and the oscout pin supplies the inverted oscin signal (see figure 12 ). figure 12. oscin and oscout pin configuration note: when oscin is unused, it should be left floating. when oscout is unused, it should be left floating. 6.9 overcurrent detection when the current in any of the power mosfets exceeds a programmed overcurrent threshold, the status register ocd flag is forced low until the overcurrent event has table 8. cl values according to external oscillator frequency crystal/resonator freq. (1) 1. first harmonic resonance frequency. c l (2) 2. lower esr value allows the driving of greater load capacitors. 8 mhz 25 pf (esr max = 80 ) 16 mhz 18 pf (esr max = 50 ) 24 mhz 15 pf (esr max = 40 ) 32 mhz 10 pf (esr max = 40 ) !-v 5.53%$ /3#). /3#/54 /3#). /3#/54 /3#). /3#/54 -(z -(z -(z %xternaloscillator configuration %xternalclocksource configuration )nternaloscillator configuration withcl ockgeneration /3#). /3#/54 )nternaloscillator configuration withoutclocksourc e 5.53%$ 5.53%$ /3#?3%,xx /3#?3%,xx # , # , %84?#,+ %84?#,+
l6470 functional description doc id16737 rev 5 29/70 expired and a getstatus command is sent to the ic (see section 9.1.22 and 9.1.17 ). the overcurrent event expires when all the power mosfet currents fall below the programmed overcurrent threshold. the overcurrent threshold can be programmed through the ocd_th register in one of 16 available values ranging from 375 ma to 6 a with steps of 375 ma (see ta b l e 9 , section 9.1.17 ). it is possible to set whether an overcurrent event causes or not the mosfet turn-off (bridges in high impedance status) acting on the oc_sd bit in the config register (see section 9.1.21 ). the ocd flag in the status register is raised anyway (see ta b l e 3 4 , section 9.1.22 ). when the ic outputs are turned off by an ocd event, they cannot be turned on until the ocd flag is released by a getstatus command. attention: the overcurrent shutdown is a critical protection feature. it is not recommended to disable it. 6.10 undervoltage lockout (uvlo) the l6470 provides a motor supply uvlo protection. when the motor supply voltage falls below the v sthoff threshold voltage, the status register uvlo flag is forced low. when a getstatus command is sent to the ic, and the undervoltage condition has expired, the uvlo flag is released (see section 9.1.22 and 9.2.20 ). the undervoltage condition expires when the motor supply voltage goes over the v sthon threshold voltage. when the device is in undervoltage condition, no motion command can be performed. the uvlo flag is forced low by logic reset (power-up included) even if no uvlo condition is present. 6.11 thermal warning and thermal shutdown an internal sensor allows the l6470 to detect when the device internal temperature exceeds a thermal warning or an overtemperature threshold. when the thermal warning threshold (t j(wrn) ) is reached, the th_wrn bit in the status register is forced low (see section 9.1.22 ) until the temperature decreases below t j(wrn) and a getstatus command is sent to the ic (see section 9.1.22 and 9.2.20 ). when the thermal shutdown threshold (t j(off) ) is reached, the device goes into thermal shutdown condition: the th_sd bit in the status register is forced low, the power bridges are disabled bridges in high impedance state and the hiz bit in the status register is raised (see section 9.1.22 ). the thermal shutdown condition only expires when the temperature goes below the thermal warning threshold (t j(wrn) ). on exiting thermal shutdown condition, the bridges are still disabled (hiz flag high); any motion command makes the device exit from high z state (hardstop and softstop included).
functional description l6470 30/70 doc id16737 rev 5 6.12 reset and standby the device can be reset and put into standby mode through a dedicated pin. when the stby \rst pin is driven low, the bridges are left open (high z state), the internal charge pump is stopped, the spi interface and control logic are disabled and the internal 3 v voltage regulator maximum output current is reduced to i reg,stby ; as a result, the l6470 heavily reduces the power consumption. at the same time the register values are reset to default and all protection functions are disabled. stby \rst input must be forced low at least for t stby,min in order to ensure the complete switch to standby mode. on exiting standby mode, as well as for ic power-up, a delay of up to t logicwu must be given before applying a new command to allow proper oscillator and logic startup and a delay of up to t cpwu must be given to allow the charge pump startup. on exiting standby mode, the bridges are disabled (hiz flag high) and any motion command makes the device exit high z state (hardstop and softstop included). attention: it is not recommended to reset the device when outputs are active. the device should be switched to high impedance state before being reset. 6.13 external switch (sw pin) the sw input is internally pulled up to v dd and detects if the pin is open or connected to ground (see figure 13 ). the sw_f bit of the status register indicates if the switch is open (?0?) or closed (?1?) (see section 9.1.22 ); the bit value is refreshed at every system clock cycle (125 ns). the sw_evn flag of the status register is raised when a switch turn-on event (sw input falling edge) is detected (see section 9.1.22 ). a getstatus command releases the sw_evn flag (see section 9.2.20 ). by default, a switch turn-on event causes a hardstop interrupt (sw_mode bit of config register set to ?0?). otherwise (sw_mode bit of config register set to ?1?), switch input events do not cause interrupts and the switch status information is at the user?s disposal (see ta bl e 3 4 , section 9.1.22 ). the switch input may be used by the gountil and releasesw commands as described in section 9.2.10 and 9.2.11 . if the sw input is not used, it should be connected to vdd.
l6470 functional description doc id16737 rev 5 31/70 6.14 programmable dmos slew rate, deadtime and blanking time using the pow_sr parameter in the config register, it is possible to set the commutation speed of the power bridges output (see ta b l e 2 6 , section 9.1.21 ). 6.15 integrated analog-to-digital converter the l6470 integrates an n adc bit ramp-compare analog-to-digital converter with a reference voltage equal to vreg. the analog-to-digital converter input is available through the adcin pin and the conversion result is available in the adc_out register (see section 9.1.16 ). sampling frequency is equal to the programmed pwm frequency. the adc_out value can be used for motor supply voltage compensation or can be at the user?s disposal. 6.16 internal voltage regulator the l6470 integrates a voltage regulator which generates a 3 v voltage starting from the motor power supply (vsa and vsb). in order to make the voltage regulator stable, at least 22 f should be connected between the vreg pin and ground (suggested value is 47 f). the internal voltage regulator can be used to supply the vdd pin in order to make the device digital output range 3.3 v compatible ( figure 14 ). a digital output range, 5 v compatible, may be obtained connecting the vdd pin to an external 5 v voltage source. in both cases, a 10 f capacitance should be connected to the vdd pin in order to obtain a correct operation. the internal voltage regulator is able to supply a current up to i reg,max , internal logic consumption included (i logic ). when the device is in standby mode, the maximum current that can be supplied is i reg , stby , internal consumption included (i logic , stby ). if an external 3.3 v regulated voltage is available, it can be applied to the vreg pin in order to supply all the internal logic and to avoid power dissipation of the internal 3 v voltage regulator ( figure 14 ). the external voltage regulator should never sink current from the vreg pin. figure 13. external switch connection !-v %xternal 3witch 37 6 $$
functional description l6470 32/70 doc id16737 rev 5 figure 14. internal 3 v linear regulator 6.17 busy\sync pin this pin is an open drain output which can be used as the busy flag or synchronization signal according to the sync_en bit value (step_mode register). 6.17.1 busy operation mode the pin works as busy signal when the sync_en bit is set low (default condition). in this mode the output is forced low while a constant speed, absolute positioning or motion command is under execution. the busy pin is released when the command has been executed (target speed or target position reached). the status register includes a busy flag that is the busy pin mirror (see section 9.1.22 ). in the case of daisy chain configuration, busy pins of different ics can be hard-wired to save host controller gpios. 6.17.2 sync operation mode the pin works as synchronization signal when the sync_en bit is set high. in this mode a step-clock signal is provided on the output according to a sync_sel and step_sel parameter combination (see section 9.1.19 ). v reg v dd v sa v sb agnd dgnd v dd c ic v s 3v v reg v dd v sa v sb agnd dgnd ic 3.3v reg. v s v bat logig supplied by internal voltage regulator logig supplied by external voltage regulator
l6470 functional description doc id16737 rev 5 33/70 6.18 flag pin by default, an internal open drain transistor pulls the flag pin to ground when at least one of the following conditions occurs: power-up or standby/reset exit stall detection on a bridge stall detection on b bridge overcurrent detection thermal warning thermal shutdown uvlo switch turn-on event wrong command non-performable command. it is possible to mask one or more alarm conditions by programming the alarm_en register (see section 9.1.20 , ta b l e 2 1 ). if the corresponding bit of the alarm_en register is low, the alarm condition is masked and it does not cause a flag pin transition; all other actions imposed by alarm conditions are performed anyway. in the case of daisy chain configuration, flag pins of different ics can be or-wired to save host controller gpios.
phase current control l6470 34/70 doc id16737 rev 5 7 phase current control the l6470 controls the phase current applying a sinusoidal voltage to motor windings. phase current amplitude is not directly controlled but depends on phase voltage amplitude, load torque, motor electrical characteristics and rotation speed. sinewave amplitude is proportional to the motor supply voltage multiplied by a coefficient (k val ). k val ranges from 0 to 100% and the sinewave amplitude can be obtained through the following formula: equation 1 different k val values can be programmed for acceleration, deceleration and constant speed phases and when the motor is stopped (hold phase) through the kval_acc, kval_dec, kval_run and kval_hold registers (see section 9.1.10 ). kval value is calculated according to the following formula: equation 2 where k val_x is the starting k val value programmed for present motion phase (kval_acc, kval_dec, kval_run or kval_hold), bemf_comp is the bemf compensation curve value, vscomp and k_therm are the motor supply voltage and winding resistance compensation factors and microstep is the current microstep value (fraction of target peak current). the l6470 offers various methods to guarantee a stable current value, allowing the compensation of: low speed optimization ( section 7.3 7.3 ) back electromotive force value ( section 7.4 7.4 ) motor supply voltage variation ( section 7.5 7.5 ) windings resistance variation ( section 7.67.6 ). 7.1 pwm sinewave generators the two voltage sinewaves applied to the stepper motor phases are generated by two pwm modulators. the pwm frequency (f pwm ) is proportional to the oscillator frequency (f osc ) and can be obtained through the following formula: equation 3 'n' is the integer division factor and 'm' is the multiplication factor. 'n' and 'm' values can be programmed by the f_pwm_int and f_pwm_dec parameters in the config register (see ta bl e 2 8 and ta b l e 2 9 , section 9.1.21 ). available pwm frequencies are listed in section 9.1.21 from ta b l e 3 0 to ta b l e 3 3 . v out v s k val ? = k val k val_x bemf_comp + () vscomp k_therm [] microstep = f pwm f osc 512 n ? --------------------- m ? =
l6470 phase current control doc id16737 rev 5 35/70 7.2 sensorless stall detection depending on motor speed and load angle characteristics, the l6470 offers a motor stall condition detection using a programmable current comparator. when a stall event occurs, the respective flag (step_loss_a or step_loss_b) is forced low until a getstaus command or a system reset occurs (see section 9.2.20 ). 7.3 low speed optimization when the motor is driven at a very low speed using a small driving voltage, the resulting phase current can be distorted. as a consequence, the motor position is different from the ideal one (see figure 15 ). the l6470 implements a low speed optimization in order to remove this effect. figure 15. current distortion and compensation the optimization can be enabled setting high the lspd_opt bit in the min_speed register (see section 9.1.8 ) and is active in a speed range from zero to min_speed. when low speed optimization is enabled, speed profile minimum speed is forced to zero. ) phase ) phase #urrentdistortionishea vily reduced 7ithoutlowspeedoptimizazion 7ithlowspeedoptimizazion !-6
phase current control l6470 36/70 doc id16737 rev 5 7.4 bemf compensation using the speed information, a compensation curve is added to the amplitude of the voltage waveform applied to the motor winding in order to compensate the bemf variations during acceleration and deceleration (see figure 16 ). the compensation curve is approximated by a stacked line with a starting slope (st_slp) when speed is lower than a programmable threshold speed (int_speed) and a fine slope (fn_slp_acc and fn_slp_dec) when speed is greater than the threshold speed (see section 9.1.11 , section 9.1.12 , section 9.1.13 and section 9.1.14 ). to obtain different current values during acceleration and deceleration phases, two different final slope values, and consequently two different compensation curves, can be programmed. the acceleration compensation curve is applied when the motor runs. no bemf compensation is applied when the motor is stopped. 7.5 motor supply voltage compensation the sinewave amplitude generated by the pwm modulators is directly proportional to the motor supply voltage (v s ). when the motor supply voltage is different from its nominal value, the motor phases are driven with an incorrect voltage. the l6470 can compensate motor supply voltage variations in order to avoid this effect. the motor supply voltage should be connected to the integrated adc input through a resistor divider in order to obtain v reg /2 voltage at the adcin pin when v s is at its nominal value (see figure 17 ). the adc input is sampled at f s frequency, which is equal to pwm frequency. figure 16. bemf compensation curve !-v 3peed #ompensation value ).4?30%%$ 34?3,0 &.?3,0? !## &.?3,0?$%#
l6470 phase current control doc id16737 rev 5 37/70 motor supply voltage compensation can be enabled setting high the en_vscomp bit of the config register (see ta bl e 2 2 , section 9.1.21 ). if the en_vscomp bit is low, the compensation is disabled and the internal analog-to-digital converter is at the user?s disposal; sampling rate is always equal to pwm frequency. 7.6 winding resistance thermal drift compensation the higher the winding resistance, the greater the voltage to be applied in order to obtain the same phase current. the l6470 integrates a register (k_therm) which can be used to compensate phase resistance increment due to temperature rising. the value in the k_therm register (see section 9.1.15 ) multiplies the duty cycle value allowing a higher phase resistance value to be faced. the compensation algorithm and the eventual motor temperature measurement should be implemented by microcontroller firmware. figure 17. motor supply voltage compensation circuit !-v !$#). !$#  f 07- !$#?/54 6 3 6 2%' 2 ! 2 " 6 !$#). 6 3 x2 " 2 ! 2 "
serial interface l6470 38/70 doc id16737 rev 5 8 serial interface the integrated 8-bit serial peripheral interface (spi) is used for a synchronous serial communication between the host microprocessor (always master) and the l6470 (always slave). the spi uses chip select (cs ), serial clock (ck), serial data input (sdi) and serial data output (sdo) pins. when cs is high, the device is unselected and the sdo line is inactive (high-impedance). the communication starts when cs is forced low. the ck line is used for synchronization of data communication. all commands and data bytes are shifted into the device through the sdi input, most significant bit first. the sdi is sampled on the rising edges of the ck. all output data bytes are shifted out of the device through the sdo output, most significant bit first. the sdo is latched on the falling edges of the ck. when a return value from the device is not available, an all zero byte is sent. after each byte transmission the cs input must be raised and be kept high for at least t discs in order to allow the device to decode the received command and put the return value into the shift register. all timing requirements are shown in figure 18 (see section 3: electrical characteristics for values). multiple devices can be connected in daisy chain configuration, as shown in figure 19 . figure 18. spi timings diagram !-v #+ 3$) 3$/ #3 -3" ,3" ,3" .  .  -3" (i: .  .  t set#3 t en3$/ t set3$) t hol3$) t v3$/ t hol3$/ t r#+ t f#+ t h#+ t l#+ t dis3$/ t hol#3 t dis#3 -3"
l6470 serial interface doc id16737 rev 5 39/70 figure 19. daisy chain configuration !-v (/34 (/3430)signals $%6 #3 3$/ - 3$) - #3 #+ 3$) 3$/ #3 #+ 3$) - 3$/ - $%6 #3 #+ 3$) 3$/ $%6. #3 #+ 3$) 3$/ "yte. "yte. "yte. "yte. "yte.  "yte.  "yte "yte
programming manual l6470 40/70 doc id16737 rev 5 9 programming manual 9.1 registers and flags description the following is a map of the user registers available (detailed description in respective paragraphs): table 9. register map address [hex] register name register function len. [bit] reset hex reset value remarks (1) h01 abs_pos current position 22 000000 0 r, ws h02 el_pos electrical position 9 000 0 r, ws h03 mark mark position 22 000000 0 r, wr h04 speed current speed 20 00000 0 step/tick (0 step/s) r h05 acc acceleration 12 08a 125.5e-12 step/tick 2 (2008 step/s 2 ) r, ws h06 dec deceleration 12 08a 125.5e-12 step/tick 2 (2008 step/s 2 ) r, ws h07 max_speed maximum speed 10 041 248e-6 step/tick (991.8 step/s) r, wr h08 min_speed minimum speed 13 000 0 step/tick (0 step/s) r, ws h15 fs_spd full-step speed 10 027 150.7e-6 step/tick (602.7 step/s) r, wr h09 kval_hold holding k val 8 29 0.16vs r, wr h0a kval_run constant speed k val 8 29 0.16vs r, wr h0b kval_acc acceleration starting k val 8 29 0.16vs r, wr h0c kval_dec deceleration starting k val 8 29 0.16vs r, wr h0d int_speed intersect speed 14 0408 15.4e-6 step/tick (61.5 step/s) r, wh h0e st_slp start slope 8 19 0.038% s/step r, wh h0f fn_slp_acc acceleration final slope 8 29 0.063% s/step r, wh h10 fn_slp_dec deceleration final slope 8 29 0.063% s/step r, wh h11 k_therm thermal compensation factor 401.0 r, wr h12 adc_out adc output 5 xx (2) r h13 ocd_th ocd threshold 4 8 3.38a r, wr h14 stall_th stall threshold 7 40 2.03a r, wr h16 step_mode step mode 8 7 128 microsteps r, wh h17 alarm_en alarm enable 8 ff all alarms enabled r, ws
l6470 programming manual doc id16737 rev 5 41/70 9.1.1 abs_pos the abs_pos register contains the current motor absolute position in agreement with the selected step mode; the stored value unit is equal to the selected step mode (full, half, quarter, etc.). the value is in 2's complement format and it ranges from -2 21 to +2 21 -1. at power-on the register is initialized to ?0? (home position). any attempt to write the register when the motor is running causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). 9.1.2 el_pos the el_pos register contains the current electrical position of the motor. the two msbits indicate the current step and the other bits indicate the current microstep (expressed in step/128) within the step. when the el_pos register is written by the user, the new electrical position is instantly imposed. when the el_pos register is written, its value must be masked in order to match with the step mode selected in the step_mode register in order to avoid a wrong microstep value generation (see section 9.1.19 ); otherwise the resulting microstep sequence is incorrect. any attempt to write the register when the motor is running causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). h18 config ic configuration 16 2e88 internal oscillator, 2 mhz oscout clock, supply voltage compensation disabled, overcurrent shutdown enabled, slew rate = 290 v/s pwm frequency = 15.6 khz. r, wh h19 status status 16 xxxx (2) high impedance state, uvlo/reset flag set. r h1a reserved reserved address h1b reserved reserved address 1. r: readable, wh: writable only when outputs are in high imp edance, ws: writable only when motor is stopped, wr: always writable. 2. according to startup conditions. table 9. register map (continued) address [hex] register name register function len. [bit] reset hex reset value remarks (1) table 10. el_pos register bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 step microstep
programming manual l6470 42/70 doc id16737 rev 5 9.1.3 mark the mark register contains an absolute position called mark according to the selected step mode; the stored value unit is equal to the selected step mode (full, half, quarter, etc.). it is in 2's complement format and it ranges from -2 21 to +2 21 -1. 9.1.4 speed the speed register contains the current motor speed, expressed in step/tick (format unsigned fixed point 0.28). in order to convert the speed value in step/s, the following formula can be used: equation 4 where speed is the integer number stored in the register and tick is 250 ns. the available range is from 0 to 15625 step/s with a resolution of 0.015 step/s. note: the range effectively available to the user is limited by the max_speed parameter. any attempt to write the register causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). 9.1.5 acc the acc register contains the speed profile acceleration expressed in step/tick 2 (format unsigned fixed point 0.40). in order to convert acc value in step/s 2 , the following formula can be used: equation 5 where acc is the integer number stored in the register and tick is 250 ns. the available range is from 14.55 to 59590 step/s 2 with a resolution of 14.55 step/s 2 . when the acc value is set to 0xfff, the device works in infinite acceleration mode. any attempt to write to the register when the motor is running causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). 9.1.6 dec the dec register contains the speed profile deceleration expressed in step/tick 2 (format unsigned fixed point 0.40). in order to convert dec value in step/s 2 , the following formula can be used: equation 6 step/s [] speed 2 28 ? ? tick --------------------------------------- - = step/s 2 [] acc 2 40 ? ? tick 2 ------------------------------- = step/s 2 [] dec 2 40 ? ? tick 2 ------------------------------- =
l6470 programming manual doc id16737 rev 5 43/70 where dec is the integer number stored in the register and tick is 250 ns. the available range is from 14.55 to 59590 step/s2 with a resolution of 14.55 step/s2. when the device is working in infinite acceleration mode, this value is ignored. any attempt to write the register when the motor is running causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). 9.1.7 max_speed the max_speed register contains the speed profile maximum speed expressed in step/tick (format unsigned fixed point 0.18). in order to convert it in step/s, the following formula can be used: equation 7 where max_speed is the integer number stored in the register and tick is 250 ns. the available range is from 15.25 to 15610 step/s with a resolution of 15.25 step/s. 9.1.8 min_speed the min_speed register contains the following parameters: the min_speed parameter contains the speed profile minimum speed. its value is expressed in step/tick and to convert it in step/s, the following formula can be used: equation 8 where min_speed is the integer number stored in the register and tick is the ramp 250 ns. the available range is from 0 to 976.3 step/s with a resolution of 0.238 step/s. when the lspd_opt bit is set high, the low speed optimization feature is enabled and the min_speed value indicates the speed threshold below which the compensation works. in this case the minimum speed of the speed profile is set to zero. an attempt to write the register when the motor is running causes the notperf_cmd flag to rise. 9.1.9 fs_spd the fs_spd register contains the threshold speed. when the actual speed exceeds this value, the step mode is automatically switched to full-step two-phase on. its value is step/s [] max_speed 2 18 ? ? tick ------------------------------------------------------- - = table 11. min_speed register bit 12 bit 11 bit 10 bit 9 bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 lspd_opt min_speed step/s [] min_speed 2 24 ? ? tick ----------------------------------------------------- - =
programming manual l6470 44/70 doc id16737 rev 5 expressed in step/tick (format unsigned fixed point 0.18) and to convert it in step/s, the following formula can be used. equation 9 if the fs_spd value is set to h3ff (max.) the system always works in microstepping mode (speed must go beyond the threshold to switch to full-step mode). setting fs_spd to zero does not have the same effect as setting step mode to full-step two-phase on: the zero fs_spd value is equivalent to a speed threshold of about 7.63 step/s. the available range is from 7.63 to 15625 step/s with a resolution of 15.25 step/s. 9.1.10 kval_hold, kval_run, kval_acc and kval_dec the kval_hold register contains the k val value that is assigned to the pwm modulators when the motor is stopped (compensation excluded). the kval_run register contains the k val value that is assigned to the pwm modulators when the motor is running at constant speed (compensation excluded). the kval_acc register contains the starting k val value that can be assigned to the pwm modulators during acceleration (compensation excluded). the kval_dec register contains the starting k val value that can be assigned to the pwm modulators during deceleration (compensation excluded). the available range is from 0 to 0.996 x v s with a resolution of 0.004 x v s , as shown in ta b l e 1 2 . 9.1.11 int_speed the int_speed register contains the speed value at which the bemf compensation curve changes slope (see section 7.4 ). its value is expressed in step/tick and to convert it in step/s, the following formula can be used: equation 10 where int_speed is the integer number stored in the register and tick is 250 ns. step/s [] fs_spd 0.5 + () 2 18 ? ? tick ------------------------------------------------------------- - = table 12. voltage amplitude regulation registers kval_x [7..0] output voltage 00000000 0 00000001 v s x (1/256) ? ? ? ? ? ? ? ? ? 11111110 v s x (254/256) 11111111 v s x (255/256) step s ? [] int speed ? 2 26 ? ? tick ----------------------------------------------------- - =
l6470 programming manual doc id16737 rev 5 45/70 the available range is from 0 to 976.5 step/s with a resolution of 0.0596 step/s. any attempt to write the register when the motor is running causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). 9.1.12 st_slp the st_slp register contains the bemf compensation curve slope that is used when the speed is lower than the intersect speed (see section 7.4 ). its value is expressed in s/step and the available range is from 0 to 0.004 with a resolution of 0.000015. when st_slp, fn_slp_acc and fn_slp_dec parameters are set to zero, no bemf compensation is performed. any attempt to write the register when the motor is running causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). 9.1.13 fn_slp_acc the fn_slp_acc register contains the bemf compensation curve slope that is used when the speed is greater than the intersect speed during acceleration (see section 7.47.4 ). its value is expressed in s/step and the available range is from 0 to 0.004 with a resolution of 0.000015. when st_slp, fn_slp_acc and fn_slp_dec parameters are set to zero, no bemf compensation is performed. any attempt to write the register when the motor is running causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). 9.1.14 fn_slp_dec the fn_slp_dec register contains the bemf compensation curve slope that is used when the speed is greater than the intersect speed during deceleration (see section 7.47.4 ). its value is expressed in s/step and the available range is from 0 to 0.004 with a resolution of 0.000015. when st_slp, fn_slp_acc and fn_slp_dec parameters are set to zero, no bemf compensation is performed. any attempt to write the register when the motor is running causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). 9.1.15 k_therm the k_therm register contains the value used by the winding resistance thermal drift compensation system (see section 7.6 ). the available range is from 1 to 1.46875 with a resolution of 0.03125, as shown in ta b l e 1 3 . table 13. winding resistance thermal drift compensation coefficient k_therm [3..0] compensation coeff. 0000 1 0 0 0 1 1.03125 ? ? ? ? ?
programming manual l6470 46/70 doc id16737 rev 5 9.1.16 adc_out the adc_out register contains the result of the analog-to-digital conversion of the adcin pin voltage; the result is available even if the supply voltage compensation is disabled. any attempt to write to the register causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). 9.1.17 ocd_th the ocd_th register contains the overcurrent threshold value (see section 6.9 ). the available range is from 375 ma to 6 a, in steps of 375 ma, as shown in ta b l e 1 5 . 9.1.18 stall_th the stall_th register contains the stall detection threshold value (see section 7.2 ). the available range is from 31.25 ma to 4 a with a resolution of 31.25 ma. 1110 1.4375 1 1 1 1 1.46875 table 13. winding resistance thermal drift compensation coefficient (continued) k_therm [3..0] compensation coeff. table 14. adc_out value and motor supply voltage compensation feature v s v adcin /v reg adc_out [4..0] compensation coefficient greater than v s , nom + 50% > 24/32 1 1 x x x 0.65625 v s , nom + 50% 24/32 11000 0.65625 ? ? ? ? ? ? ? ? v s , nom 16/32 10000 1 ? ? ? ? ? ? ? ? v s , nom ? 50% 8/32 01000 1.968875 lower than v s , nom ? 50% < 8/32 0 0 x x x 1.968875 table 15. overcurrent detection threshold ocd_th [3..0] overcurrent detection threshold 0000 375 ma 0001 750 ma ???? ? 1 1 1 0 5.625 a 1111 6 a
l6470 programming manual doc id16737 rev 5 47/70 9.1.19 step_mode the step_mode register has the following structure: the step_sel parameter selects one of eight possible stepping modes: every time the step mode is changed, the electrical position (i.e. the point of microstepping sinewave that is generated) is reset to the first microstep. warning: every time step_sel is changed, the value in the abs_pos register loses meaning and should be reset. any attempt to write the register when the motor is running causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). table 16. stall detection threshold stall_th [6..0] stall detection threshold 0000000 31.25 ma 0 0 0 0 0 0 1 62.5 ma ??????? ? 1111110 3.969 a 1111111 4 a table 17. step_mode register bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 sync_en sync_sel 0 (1) 1. when the register is written, this bit should be set to 0. step_sel table 18. step mode selection step_sel[2..0] step mode 000full-step 001half-step 0 1 0 1/4 microstep 0 1 1 1/8 microstep 1 0 0 1/16 microstep 1 0 1 1/32 microstep 1 1 0 1/64 microstep 1 1 1 1/128 microstep
programming manual l6470 48/70 doc id16737 rev 5 when the sync_en bit is set low, busy /sync output is forced low during command execution, otherwise, when the sync_en bit is set high, busy /sync output provides a clock signal according to the sync_sel parameter. the synchronization signal is obtained starting from electrical position information (el_pos register) according to ta b l e 1 0 : 9.1.20 alarm_en the alarm_en register allows the selection of which alarm signals are used to generate the flag output. if the respective bit of the alarm_en register is set high, the alarm condition forces the flag pin output down. table 19. sync output frequency step_sel (f fs is the full-step frequency) 000 001 010 011 100 101 110 111 sync_sel 000 f fs /2 f fs /2 f fs /2 f fs /2 f fs /2 f fs /2 f fs /2 f fs /2 001 na f fs f fs f fs f fs f fs f fs f fs 010 na na 2 f fs 2 f fs 2 f fs 2 f fs 2 f fs 2 f fs 011 na na na 4 f fs 4 f fs 4 f fs 4 f fs 4 f fs 100 na na na na 8 f fs 8 f fs 8 f fs 8 f fs 101 na na na na na 16 f fs 16 f fs 16 f fs 110 na na na na na na 32 f fs 32 f fs 111 na na na na na na na 64 f fs table 20. sync signal source sync_sel[2..0] source 0 0 0 el_pos[7] 0 0 1 el_pos[6] 0 1 0 el_pos[5] 0 1 1 el_pos[4] 1 0 0 el_pos[3] 1 0 1 el_pos[2] 1 1 0 el_pos[1] 1 1 1 el_pos[0]
l6470 programming manual doc id16737 rev 5 49/70 9.1.21 config the config register has the following structure: the osc_sel and ext_clk bits set the system clock source: table 21. alarm_en register alarm_en bit alarm condition 0 (lsb) overcurrent 1 thermal shutdown 2 thermal warning 3 undervoltage 4 stall detection (bridge a) 5 stall detection (bridge b) 6 switch turn-on event 7 (msb) wrong or non-performable command table 22. config register bit 15 bit 14 bit 13 bit 12 bit 11 bit 10 bit 9 bit 8 f_pwm_int f_pwm_dec pow_sr bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 oc_sd reserved en_vscomp sw_mode ext_clk osc_sel table 23. oscillator management ext_c lk osc_sel[2..0] clock source oscin oscout 0000 internal oscillator: 16 mhz unused unused 0001 0010 0011 1000internal oscillator: 16 mhz unused supplies a 2-mhz clock 1001internal oscillator: 16 mhz unused supplies a 4-mhz clock 1010internal oscillator: 16 mhz unused supplies an 8-mhz clock 1011internal oscillator: 16 mhz unused supplies a 16-mhz clock
programming manual l6470 50/70 doc id16737 rev 5 the sw_mode bit sets the external switch to act as hardstop interrupt or not: the oc_sd bit sets whether an overcurrent event causes or not the bridges to turn off; the ocd flag in the status register is forced low anyway: the pow_sr bits set the slew rate value of power bridge output: 0100 external crystal or resonator: 8 mhz crystal/resonator driving crystal/resonator driving 0101 external crystal or resonator: 16 mhz crystal/resonator driving crystal/resonator driving 0110 external crystal or resonator: 24 mhz crystal/resonator driving crystal/resonator driving 0111 external crystal or resonator: 32 mhz crystal/resonator driving crystal/resonator driving 1100 ext clock source: 8 mhz (crystal/resonator driver disabled) clock source supplies inverted oscin signal 1101 ext clock source: 16 mhz (crystal/resonator driver disabled) clock source supplies inverted oscin signal 1110 ext clock source: 24 mhz (crystal/resonator driver disabled) clock source supplies inverted oscin signal 1111 ext clock source: 32 mhz (crystal/resonator driver disabled) clock source supplies inverted oscin signal table 23. oscillator management (continued) ext_c lk osc_sel[2..0] clock source oscin oscout table 24. external switch hard stop interrupt mode sw_mode switch mode 0 hardstop interrupt 1 user disposal table 25. overcurrent event oc_sd overcurrent event 1 bridges shut down 0 bridges do not shut down
l6470 programming manual doc id16737 rev 5 51/70 the en_vscomp bit sets whether the motor supply voltage compensation is enabled or not. the f_pwm_int bits set the integer division factor of pwm frequency generation. the f_pwm_dec bits set the multiplication factor of pwm frequency generation. table 26. programmable power bridge output slew rate values pow_sr [1..0] output slew rate (1) [v/s] 1. see s rout_r and s rout_f parameters in table 5 for details. 00 320 01 75 10 110 11 260 table 27. motor supply voltage compensation enable en_vscomp motor supply voltage compensation 0 disabled 1 enabled table 28. pwm frequency: integer division factor f_pwm_int [2..0] integer division factor 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111
programming manual l6470 52/70 doc id16737 rev 5 in the following tables all available pwm frequencies are listed according to oscillator frequency, f_pwm_int and f_pwm_dec values (config register osc_sel parameter must be correctly programmed). table 29. pwm frequency: multiplication factor f_pwm_dec [2..0] multiplication factor 000 0.625 001 0.75 010 0.875 011 1 100 1.25 101 1.5 110 1.75 111 2 table 30. available pwm frequencies [khz]: 8-mhz oscillator frequency f_pwm_dec f_pwm_ int 000 001 010 011 100 101 110 111 000 9.8 11.7 13.7 15.6 19.5 23.4 27.3 31.3 001 4.9 5.9 6.8 7.8 9.8 11.7 13.7 15.6 010 3.3 3.9 4.6 5.2 6.5 7.8 9.1 10.4 011 2.4 2.9 3.4 3.9 4.9 5.9 6.8 7.8 100 2.0 2.3 2.7 3.1 3.9 4.7 5.5 6.3 101 1.6 2.0 2.3 2.6 3.3 3.9 4.6 5.2 110 1.4 1.7 2.0 2.2 2.8 3.3 3.9 4.5 table 31. available pwm frequencies [khz]: 16-mhz oscillator frequency f_pwm_dec f_pwm_int 000 001 010 011 100 101 110 111 000 19.5 23.4 27.3 31.3 39.1 46.9 54.7 62.5 001 9.8 11.7 13.7 15.6 19.5 23.4 27.3 31.3 010 6.5 7.8 9.1 10.4 13.0 15.6 18.2 20.8
l6470 programming manual doc id16737 rev 5 53/70 011 4.9 5.9 6.8 7.8 9.8 11.7 13.7 15.6 100 3.9 4.7 5.5 6.3 7.8 9.4 10.9 12.5 101 3.3 3.9 4.6 5.2 6.5 7.8 9.1 10.4 110 2.83.33.94.55.66.77.88.9 table 32. available pwm frequencies [khz]: 24-mhz oscillator frequency f_pwm_dec f_pwm_int 000 001 010 011 100 101 110 111 000 29.3 35.2 41.0 46.9 58.6 70.3 82.0 93.8 001 14.6 17.6 20.5 23.4 29.3 35.2 41.0 46.9 010 9.8 11.7 13.7 15.6 19.5 23.4 27.3 31.3 011 7.3 8.8 10.3 11.7 14.6 17.6 20.5 23.4 100 5.9 7.0 8.2 9.4 11.7 14.1 16.4 18.8 101 4.9 5.9 6.8 7.8 9.8 11.7 13.7 15.6 110 4.2 5.0 5.9 6.7 8.4 10.0 11.7 13.4 table 33. available pwm frequencies [khz]: 32-mhz oscillator frequency f_pwm_dec f_pwm_ int 000 001 010 011 100 101 110 111 000 39.1 46.9 54.7 62.5 78.1 93.8 109.4 125.0 001 19.5 23.4 27.3 31.3 39.1 46.9 54.7 62.5 010 13.0 15.6 18.2 20.8 26.0 31.3 36.5 41.7 011 9.8 11.7 13.7 15.6 19.5 23.4 27.3 31.3 100 7.8 9.4 10.9 12.5 15.6 18.8 21.9 25.0 101 6.5 7.8 9.1 10.4 13.0 15.6 18.2 20.8 110 5.6 6.7 7.8 8.9 11.2 13.4 15.6 17.9 table 31. available pwm frequencies [khz]: 16-mhz oscillator frequency f_pwm_dec f_pwm_int 000 001 010 011 100 101 110 111
programming manual l6470 54/70 doc id16737 rev 5 any attempt to write the config register when the motor is running causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). 9.1.22 status when the hiz flag is high, it indicates that the bridges are in high impedance state. any motion command makes the device exit from high z state (hardstop and softstop included), unless error flags forcing a high z state are active. the uvlo flag is active low and is set by an undervoltage lockout or reset events (power-up included). the th_wrn, th_sd, ocd flags are active low and indicate, respectively, thermal warning, thermal shutdown and overcurrent detection events. step_loss_a and step_loss_b flags are forced low when a stall is detected on bridge a or bridge b respectively. the notperf_cmd and wrong_cmd flags are active high and indicate, respectively, that the command received by spi cannot be performed or does not exist at all. the sw_f flag reports the sw input status (low for open and high for closed). the sw_evn flag is active high and indicates a switch turn-on event (sw input falling edge). the uvlo, th_wrn, th_sd, ocd, step_loss_a, step_loss_b, notperf_cmd, wrong_cmd and sw_evn flags are latched: when the respective conditions make them active (low or high), they remain in that state until a getstatus command is sent to the ic. the busy bit reflects the busy pin status. the busy flag is low when a constant speed, positioning or motion command is under execution and is released (high) after the command has been completed. the sck_mod bit is an active high flag indicating that the device is working in step-clock mode. in this case the step-clock signal should be provided through the stck input pin. the dir bit indicates the current motor direction: mot_status indicates the current motor status: table 34. status register bit 15 bit 14 bit 13 bit 12 bit 11 bit 10 bit 9 bit 8 sck_mod step_loss_b step_loss_a ocd th_sd th_wrn uvlo wrong_cmd bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 notperf_cmd mot_status dir sw_evn sw_f busy hiz table 35. status register dir bit dir motor direction 1forward 0reverse
l6470 programming manual doc id16737 rev 5 55/70 any attempt to write to the register causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). 9.2 application commands the command summary is given in ta b l e 3 7 . table 36. status register mot_state bits mot_status motor status 0 0 stopped 01 acceleration 10 deceleration 1 1 constant speed table 37. application commands command mnemonic command binary code action [7..5] [4] [3] [2..1] [0] nop 000 0 0 00 0 nothing setparam(param,value) 000 [param] writes value in param register getparam(param) 001 [param] returns the stored value in param register run(dir,spd) 010 1 0 00 dir sets the target speed and the motor direction stepclock(dir) 010 1 1 00 dir puts the device into step-clock mode and imposes dir direction move(dir,n_step) 010 0 0 00 dir makes n_step (micro)steps in dir direction (not performable when motor is running) goto(abs_pos) 011 0 0 00 0 brings motor into abs_pos position (minimum path) goto_dir(dir,abs_pos) 011 0 1 00 dir brings motor into abs_pos position forcing dir direction gountil(act,dir,spd) 100 0 act 01 dir performs a motion in dir direction with speed spd until sw is closed, the act action is executed then a softstop takes place. relesesw(act, dir) 100 1 act 01 dir performs a motion in dir direction at minimum speed until the sw is released (open), the act action is executed then a hardstop takes place. gohome 011 1 0 00 0 brings the motor into home position gomark 011 1 1 00 0 brings the motor into mark position resetpos 110 1 1 00 0 resets the abs_pos register (set home position) resetdevice 110 0 0 00 0 device is reset to power-up conditions. softstop 101 1 0 00 0 stops motor with a deceleration phase
programming manual l6470 56/70 doc id16737 rev 5 9.2.1 command management the host microcontroller can control motor motion and configure the l6470 through a complete set of commands. all commands are composed by a single byte. after the command byte, some bytes of arguments should be needed (see figure 20 ). argument length can vary from 1 to 3 bytes. figure 20. command with 3-byte argument by default, the device returns an all zero response for any received byte, the only exceptions are the getparam and getstatus commands. when one of these commands is received, the following response bytes represent the related register value (see figure 21 ). response length can vary from 1 to 3 bytes. figure 21. command with 3-byte response during response transmission, new commands can be sent. if a command requiring a response is sent before the previous response is completed, the response transmission is aborted and the new response is loaded into the output communication buffer (see figure 22 ). hardstop 101 1 1 00 0 stops motor immediately softhiz 101 0 0 00 0 puts the bridges into high impedance status after a deceleration phase hardhiz 101 0 1 00 0 puts the bridges into high impedance status immediately getstatus 110 1 0 00 0 returns the status register value reserved 111 0 1 01 1 reserved command reserved 111 1 1 00 0 reserved command table 37. application commands (continued) command mnemonic command binary code action [7..5] [4] [3] [2..1] [0] 3$) 3$/ #ommandbyte !rgumentbyte -3" !rgumentbyte ,3" !rgumentbyte x x x x fromhost tohost 3$) 3$/ #ommandbyte 2esponsebyte -3" 2esponsebyte ,3" 2esponsebyte x ./0 ./0 ./0 fromhost tohost
l6470 programming manual doc id16737 rev 5 57/70 figure 22. command response aborted when a byte that does not correspond to a command is sent to the ic, it is ignored and the wrong_cmd flag in the status register is raised (see section 9.1.22 ). 9.2.2 nop nothing is performed. 9.2.3 setparam (param, value) the setparam command sets the param register value equal to value; param is the respective register address listed in ta b l e 1 2 . the command should be followed by the new register value (most significant byte first). the number of bytes making up the value argument depends on the length of the target register (see ta b l e 1 2 ). some registers cannot be written (see ta b l e 1 2 ); any attempt to write one of those registers causes the command to be ignored and the wrong_cmd flag to rise at the end of the command byte as if an unknown command code were sent (see section 9.1.22 ). some registers can only be written in particular conditions (see ta bl e 1 2 ); any attempt to write one of those registers when the conditions are not satisfied causes the command to be ignored and the notperf_cmd flag to rise at the end of the last argument byte (see section 9.1.22 ). any attempt to set an inexistent register (wrong address value) causes the command to be ignored and the wrong_cmd flag to rise at the end of the command byte as if an unknown command code were sent. 3$) 3$/ #ommand byterespexpected #ommand byterespexpected 2esponsebyte -3" 2esponsebyte -3" 2esponsebyte x #ommand norespexpected 2esponsebyte ,3" fromhost tohost #ommand norespexpected #ommand norespexpected #ommandresponse isaborted table 38. nop command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 00000000 from host table 39. setparam command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 0 0 0 param from host value byte 2 (if needed) value byte 1 (if needed) value byte 0
programming manual l6470 58/70 doc id16737 rev 5 9.2.4 getparam (param) this command reads the current param register value; param is the respective register address listed in ta b l e 1 2 . the command response is the current value of the register (most significant byte first). the number of bytes making up the command response depends on the length of the target register (see ta b l e 1 2 ). the returned value is the register one at the moment of getparam command decoding. if register values change after this moment, the response is not accordingly updated. all registers can be read anytime. any attempt to read an inexistent register (wrong address value) causes the command to be ignored and the wrong_cmd flag to rise at the end of the command byte as if an unknown command code were sent. 9.2.5 run (dir, spd) the run command produces a motion at spd speed; the direction is selected by the dir bit: '1' forward or '0' reverse. the spd value is expressed in step/tick (format unsigned fixed point 0.28) that is the same format as the speed register (see section 9.1.4 ). note: the spd value should be lower than max_speed and greater than min_speed otherwise the run command is executed at max_speed or min_speed respectively. this command keeps the busy flag low until the target speed is reached. this command can be given anytime and is immediately executed. table 40. getparam command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 0 0 1 param from host ans byte 2 (if needed) to host ans byte 1 (if needed) to host ans byte 0 to host table 41. run command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 0101000dir from host x x x x spd (byte 2) from host spd (byte 1) from host spd (byte 0) from host
l6470 programming manual doc id16737 rev 5 59/70 9.2.6 stepclock (dir) the stepclock command switches the device in step-clock mode (see section 6.7.5 ) and imposes the forward (dir = '1') or reverse (dir = '0') direction. when the device is in step-clock mode, the sck_mod flag in the status register is raised and the motor is always considered stopped (see section 6.7.5 and 9.1.22 ). the device exits from step-clock mode when a constant speed, absolute positioning or motion command is sent through spi. motion direction is imposed by the respective stepclock command argument and can by changed by a new stepclock command without exiting step-clock mode. events that cause bridges to be forced into high impedance state (overtemperature, overcurrent, etc.) do not cause the device to leave step-clock mode. the stepclock command does not force the busy flag low. this command can only be given when the motor is stopped. if a motion is in progress, the motor should be stopped and it is then possible to send a stepclock command. any attempt to perform a stepclock command when the motor is running causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). 9.2.7 move (dir, n_step) the move command produces a motion of n_step microsteps; the direction is selected by the dir bit ('1' forward or '0' reverse). the n_step value is always in agreement with the selected step mode; the parameter value unit is equal to the selected step mode (full, half, quarter, etc.). this command keeps the busy flag low until the target number of steps is performed. this command can only be performed when the motor is stopped. if a motion is in progress, the motor must be stopped and it is then possible to perform a move command. any attempt to perform a move command when the motor is running causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). table 42. stepclock command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 0101100dir from host table 43. move command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 0100000dir from host x x n_step (byte 2) from host n_step (byte 1) from host n_step (byte 0) from host
programming manual l6470 60/70 doc id16737 rev 5 9.2.8 goto (abs_pos) the goto command produces a motion to abs_pos absolute position through the shortest path. the abs_pos value is always in agreement with the selected step mode; the parameter value unit is equal to the selected step mode (full, half, quarter, etc.). the goto command keeps the busy flag low until the target position is reached. this command can be given only when the previous motion command has been completed (busy flag released). any attempt to perform a goto command when a previous command is under execution (busy low) causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). 9.2.9 goto_dir (dir, abs_pos) the goto_dir command produces a motion to abs_pos absolute position imposing a forward (dir = '1') or a reverse (dir = '0') rotation. the abs_pos value is always in agreement with the selected step mode; the parameter value unit is equal to the selected step mode (full, half, quarter, etc.). the goto_dir command keeps the busy flag low until the target speed is reached. this command can be given only when the previous motion command has been completed (busy flag released). any attempt to perform a goto_dir command when a previous command is under execution (busy low) causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). table 44. goto command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 0 1 1 00000 from host x x abs_pos (byte 2) from host abs_pos (byte 1) from host abs_pos (byte 0) from host table 45. goto_dir command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 0110100dir from host x x abs_pos (byte 2) from host abs_pos (byte 1) from host abs_pos (byte 0) from host
l6470 programming manual doc id16737 rev 5 61/70 9.2.10 gountil (act, dir, spd) the gountil command produces a motion at spd speed imposing a forward (dir = '1') or a reverse (dir = '0') direction. when an external switch turn-on event occurs (see section 6.13 ), the abs_pos register is reset (if act = '0') or the abs_pos register value is copied into the mark register (if act = '1'); then the system performs a softstop command. the spd value is expressed in step/tick (format unsigned fixed point 0.28) that is the same format as the speed register (see section 9.1.4 ). the spd value should be lower than max_speed and greater than min_speed, otherwise the target speed is imposed at max_speed or min_speed respectively. if the sw_mode bit of the config register is set low, the external switch turn-on event causes a hardstop interrupt instead of the softstop one (see section 6.13 and 9.1.21 ). this command keeps the busy flag low until the switch turn-on event occurs and the motor is stopped. this command can be given anytime and is immediately executed. 9.2.11 releasesw (act, dir) the releasesw command produces a motion at minimum speed imposing a forward (dir = '1') or reverse (dir = '0') rotation. when sw is released (opened), the abs_pos register is reset (act = '0') or the abs_pos register value is copied into the mark register (act = '1'); the system then performs a hardstop command. note that resetting the abs_pos register is equivalent to setting the home position. if the minimum speed value is less than 5 step/s or low speed optimization is enabled, the motion is performed at 5 step/s. the releasesw command keeps the busy flag low until the switch input is released and the motor is stopped. table 46. gountil command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 1 0 0 0 act 0 1 dir from host x x x x spd (byte 2) from host spd (byte 1) from host spd (byte 0) from host table 47. releasesw command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 1 0 0 1 act 0 1 dir from host
programming manual l6470 62/70 doc id16737 rev 5 9.2.12 gohome the gohome command produces a motion to the home position (zero position) via the shortest path. note that this command is equivalent to the ?goto(0?0)? command. if a motor direction is mandatory, the goto_dir command must be used (see section 9.2.9 ). the gohome command keeps the busy flag low until the home position is reached. this command can be given only when the previous motion command has been completed. any attempt to perform a gohome command when a previous command is under execution (busy low) causes the command to be ignored and the notperf_cmd to rise (see section 9.1.22 ). 9.2.13 gomark the gomark command produces a motion to the mark position performing the minimum path. note that this command is equivalent to the ?goto (mark)? command. if a motor direction is mandatory, the goto_dir command must be used. the gomark command keeps the busy flag low until the mark position is reached. this command can be given only when the previous motion command has been completed (busy flag released). any attempt to perform a gomark command when a previous command is under execution (busy low) causes the command to be ignored and the notperf_cmd flag to rise (see section 9.1.22 ). 9.2.14 resetpos the resetpos command resets the abs_pos register to zero. the zero position is also defined as home position (see section 6.5 ). table 48. gohome command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 01110000 from host table 49. gomark command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 01111000from host table 50. resetpos command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 11011000 from host
l6470 programming manual doc id16737 rev 5 63/70 9.2.15 resetdevice the resetdevice command resets the device to power-up conditions (see section 6.1 ). note: at power-up the power bridges are disabled. 9.2.16 softstop the softstop command causes an immediate deceleration to zero speed and a consequent motor stop; the deceleration value used is the one stored in the dec register (see section 9.1.6 ). when the motor is in high impedance state, a softstop command forces the bridges to exit from high impedance state; no motion is performed. this command can be given anytime and is immediately executed. this command keeps the busy flag low until the motor is stopped. 9.2.17 hardstop the hardstop command causes an immediate motor stop with infinite deceleration. when the motor is in high impedance state, a hardstop command forces the bridges to exit from high impedance state; no motion is performed. this command can be given anytime and is immediately executed. this command keeps the busy flag low until the motor is stopped. 9.2.18 softhiz table 51. resetdevice command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 11000000 from host table 52. softstop command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 10110000 from host table 53. hardstop command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 10111000 from host table 54. softhiz command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 10100000 from host
programming manual l6470 64/70 doc id16737 rev 5 the softhiz command disables the power bridges (high impedance state) after a deceleration to zero; the deceleration value used is the one stored in the dec register (see section 9.1.6 ). when bridges are disabled, the hiz flag is raised. when the motor is stopped, a softhiz command forces the bridges to enter into high impedance state. this command can be given anytime and is immediately executed. this command keeps the busy flag low until the motor is stopped. 9.2.19 hardhiz the hardhiz command immediately disables the power bridges (high impedance state) and raises the hiz flag. when the motor is stopped, a hardhiz command forces the bridges to enter into high impedance state. this command can be given anytime and is immediately executed. this command keeps the busy flag low until the motor is stopped. 9.2.20 getstatus the getstatus command returns the status register value. the getstatus command resets the status register warning flags. the command forces the system to exit from any error state. the getstatus command does not reset the hiz flag. table 55. hardhiz command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 10101000 from host table 56. getstatus command structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 11010000 from host status msbyte to host status lsbyte to host
l6470 package mechanical data doc id16737 rev 5 65/70 10 package mechanical data in order to meet environmental requirements, st offers these devices in different grades of ecopack ? packages, depending on their level of environmental compliance. ecopack ? specifications, grade definitions and product status are available at: www.st.com. ecopack ? is an st trademark. table 57. htssop28 mechanical data dim. mm min. typ. max. a 1.2 a1 0.15 a2 0.8 1.0 1.05 b 0.19 0.3 c 0.09 0.2 d (1) 1. dimension ?d? does not include mold flash, protrusions or gate burrs. mold flash, protrusions or gate burrs must not exceed 0.15 mm per side. 9.6 9.7 9.8 d1 5.5 e 6.2 6.4 6.6 e1 (2) 2. dimension ?e1? does not include inte rlead flash or protrusions. interlead flash or protrusions must not exceed 0.25 mm per side. 4.3 4.4 4.5 e2 2.8 e0.65 l 0.45 0.6 0.75 l1 1.0 k0 8 aaa 0.1
package mechanical data l6470 66/70 doc id16737 rev 5 figure 23. htssop28 mechanical data !-v
l6470 package mechanical data doc id16737 rev 5 67/70 table 58. powerso36 mechanical data dim. mm min. typ. max. a 3.60 a1 0.10 0.30 a2 3.30 a3 0 0.10 b 0.22 0.38 c 0.23 0.32 d(1) 15.80 16.00 d1 9.40 9.80 e 13.90 14.50 e1(1) 10.90 11.10 e2 2.90 e3 5.8 6.2 e 0.65 e3 11.05 g 0 0.10 h 15.50 15.90 h 1.10 l 0.80 1.10 n 10 s 0 8
package mechanical data l6470 68/70 doc id16737 rev 5 figure 24. powerso36 drawings h d $ ( d 3620(& '(7$,/$ '    ( ( k[? '(7$,/$ ohdg voxj d 6 *djh3odqh  / '(7$,/% '(7$,/% &23/$1$5,7< *& & 6($7,1*3/$1( h f 1 1 0  $% e % $ + ( ' %277209,(:   
l6470 revision history doc id16737 rev 5 69/70 11 revision history table 59. revision history date revision changes 06-nov-2009 1 initial release 05-nov-2010 2 document status promoted from preliminary data to datasheet 18-may-2011 3 updated: ta bl e 4 , ta bl e 5 added: section 6.7.6 , section 6.4.1 19-jun-2012 4 added device in powerso36 and figure 3 updated: ta bl e 2 , ta bl e 3 , table 4 , table 5 , table 6 , ta bl e 9 and section 9.1.11 . minor text changes. 20-dec-2012 5 changed the title. changed t op value in table 2 removed t j value in ta bl e 3 . updated htssop28 mechanical data.
l6470 70/70 doc id16737 rev 5 please read carefully: information in this document is provided solely in connection with st products. stmicroelectronics nv and its subsidiaries (?st ?) reserve the right to make changes, corrections, modifications or improvements, to this document, and the products and services described he rein at any time, without notice. all st products are sold pursuant to st?s terms and conditions of sale. purchasers are solely responsible for the choice, selection and use of the st products and services described herein, and st as sumes no liability whatsoever relating to the choice, selection or use of the st products and services described herein. no license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted under this document. i f any part of this document refers to any third party products or services it shall not be deemed a license grant by st for the use of such third party products or services, or any intellectual property contained therein or considered as a warranty covering the use in any manner whatsoev er of such third party products or services or any intellectual property contained therein. unless otherwise set forth in st?s terms and conditions of sale st disclaims any express or implied warranty with respect to the use and/or sale of st products including without limitation implied warranties of merchantability, fitness for a particular purpose (and their equivalents under the laws of any jurisdiction), or infringement of any patent, copyright or other intellectual property right. unless expressly approved in writing by two authorized st representatives, st products are not recommended, authorized or warranted for use in military, air craft, space, life saving, or life sustaining applications, nor in products or systems where failure or malfunction may result in personal injury, death, or severe property or environmental damage. st products which are not specified as "automotive grade" may only be used in automotive applications at user?s own risk. resale of st products with provisions different from the statements and/or technical features set forth in this document shall immediately void any warranty granted by st for the st product or service described herein and shall not create or extend in any manner whatsoev er, any liability of st. st and the st logo are trademarks or register ed trademarks of st in various countries. information in this document supersedes and replaces all information previously supplied. the st logo is a registered trademark of stmicroelectronics. all other names are the property of their respective owners. ? 2012 stmicroelectronics - all rights reserved stmicroelectronics group of companies australia - belgium - brazil - canada - china - czech republic - finland - france - germany - hong kong - india - israel - ital y - japan - malaysia - malta - morocco - philippines - singapore - spain - sweden - switzerland - united kingdom - united states of america www.st.com


▲Up To Search▲   

 
Price & Availability of L6470PD

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X